package 文件io;

import java.io.*;
/*
 先了解2个单词先：
 1、bit --位：位是计算机中存储数据的最小单位，指二进制数中的一个位数，其值为“0”或“1”。
 2、byte --字节：字节是计算机存储容量的基本单位，一个字节由8位二进制数组成。在计算机内部，一个字节可以表示一个数据，也可以表示一个英文字母，两个字节可以表示一个汉字。
 1B＝8bit 
 1Byte=8bit
 1KB=1024Byte(字节)=8*1024bit
 1MB=1024KB
 1GB=1024MB
 1TB=1024GB

 Java基本数据类型占用位与字节数
 int     32bit   4b
 short   16bit   2b
 long    64bit   8b
 byte    8bit    1b
 char    16bit   2b
 float   32bit   4b
 double  64bit   8b
 boolean 1bit
*/
public class 数据流
{
	public static void main(String[]args){
		write();
		read();
		System.out.println(Integer.SIZE);
	}
	
	private static void write(){
		File file=new File(FilePath.PATH+"/数据流.txt");
		try
		{
			DataOutputStream dos=new DataOutputStream(new BufferedOutputStream(new FileOutputStream(file)));
			dos.writeInt(10);//4个字节
			dos.writeByte(1);//1个字节
			dos.writeUTF("我");//5个字节
			dos.close();
		}
		catch (FileNotFoundException e)
		{}
		catch(IOException e){}
	}
	private static void read(){
		File file=new File(FilePath.PATH+"/数据流.txt");
		try
		{
			InputStream in=new FileInputStream(file);
			BufferedInputStream bis=new BufferedInputStream(in);
			DataInputStream dis=new DataInputStream(bis);
			//注意 读取时数据类型顺序要与写入时顺序一致
			int num=dis.readInt();//必须与写入时的类型顺序一致
			byte bt=dis.readByte();
			String s=dis.readUTF();
			dis.close();
			System.out.println(num+" "+bt+" "+s);
		}
		catch (FileNotFoundException e)
		{}
		catch(IOException e){}
	}
}
